From 003e9504eb08d42bfa2f8bd55a7b8a6f6ab4d862 Mon Sep 17 00:00:00 2001 From: robertl Date: Tue, 4 Mar 2003 17:12:19 +0000 Subject: [PATCH] Add dbname option to cetus and gpspilot. From Ron Parker. --- gpsbabel/cetus.c | 24 +++++++++++++++++++++++- gpsbabel/gpspilot.c | 23 ++++++++++++++++++++++- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/gpsbabel/cetus.c b/gpsbabel/cetus.c index e5ddd603f..713307e63 100644 --- a/gpsbabel/cetus.c +++ b/gpsbabel/cetus.c @@ -78,6 +78,14 @@ static const char *out_fname; struct pdb *opdb; struct pdb_record *opdb_rec; +static char *dbname = NULL; + +static +arglist_t cetus_args[] = { + {"dbname", &dbname, "Database name"}, + {0, 0, 0} +}; + static void rd_init(const char *fname, const char *args) { @@ -91,6 +99,10 @@ static void rd_deinit(void) { fclose(file_in); + if ( dbname ) { + xfree(dbname); + dbname = NULL; + } } static void @@ -107,6 +119,10 @@ static void wr_deinit(void) { fclose(file_out); + if ( dbname ) { + xfree(dbname); + dbname = NULL; + } } static void @@ -297,7 +313,12 @@ data_write(void) fatal (MYNAME ": new_pdb failed\n"); } - strncpy(opdb->name, out_fname, PDB_DBNAMELEN); + if ( dbname ) { + strncpy( opdb->name, dbname, PDB_DBNAMELEN ); + } + else { + strncpy(opdb->name, out_fname, PDB_DBNAMELEN); + } opdb->name[PDB_DBNAMELEN-1] = 0; opdb->attributes = PDB_ATTR_BACKUP; opdb->ctime = opdb->mtime = time(NULL) + 2082844800U; @@ -337,4 +358,5 @@ ff_vecs_t cetus_vecs = { wr_deinit, data_read, data_write, + cetus_args }; diff --git a/gpsbabel/gpspilot.c b/gpsbabel/gpspilot.c index 9909ba82b..14b468079 100644 --- a/gpsbabel/gpspilot.c +++ b/gpsbabel/gpspilot.c @@ -39,6 +39,13 @@ static FILE *file_out; static const char *out_fname; struct pdb *opdb; struct pdb_record *opdb_rec; +static char *dbname = NULL; + +static +arglist_t gpspilot_args[] = { + {"dbname", &dbname, "Database name"}, + {0, 0, 0} +}; static void rd_init(const char *fname, const char *args) @@ -53,6 +60,10 @@ static void rd_deinit(void) { fclose(file_in); + if ( dbname ) { + xfree(dbname); + dbname = NULL; + } } static void @@ -69,6 +80,10 @@ static void wr_deinit(void) { fclose(file_out); + if ( dbname ) { + xfree(dbname); + dbname = NULL; + } } static void @@ -184,7 +199,12 @@ data_write(void) fatal (MYNAME ": new_pdb failed\n"); } - strncpy(opdb->name, out_fname, PDB_DBNAMELEN); + if ( dbname ) { + strncpy(opdb->name, dbname, PDB_DBNAMELEN); + } + else { + strncpy(opdb->name, out_fname, PDB_DBNAMELEN); + } opdb->name[PDB_DBNAMELEN-1] = 0; opdb->attributes = PDB_ATTR_BACKUP; opdb->ctime = opdb->mtime = time(NULL) + 2082844800U; @@ -205,4 +225,5 @@ ff_vecs_t gpspilot_vecs = { wr_deinit, data_read, data_write, + gpspilot_args }; -- 2.30.2